home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / c / xlib20b.zip / EXAMPLE1.ASM next >
Assembly Source File  |  1993-10-11  |  2KB  |  39 lines

  1.                .MODEL        LARGE,PASCAL
  2.                .386P
  3.  
  4.                INCLUDE        XLIB.INC       ;Include XLIB public symbols
  5.                INCLUDELIB     XLIB.LIB       ;Link with XLIB.LIB
  6.  
  7.                .STACK         1024
  8.                .CODE
  9.                .STARTUP
  10.                CALL           INITXLIB       ;Initialize XLIB
  11.                OR             EAX,EAX        ;EAX = 0 if successful
  12.                JZ             INITDONE
  13.                .EXIT          0              ;Initialization failed
  14. INITDONE:      PUSHD          OFFSET DEMOPROC
  15.                CALL           CALLPM         ;Execute DEMOPROC in protected
  16.                .EXIT          0
  17.  
  18. ;Protected-mode routines must be placed in following segment:
  19. TSEG           SEGMENT PARA PUBLIC USE32 'CODE'
  20.                ASSUME CS:TSEG, SS:TSEG, DS:TSEG, ES:TSEG, FS:DSEG, GS:DGROUP
  21.  
  22. ;Protected-mode routine to print message to the screen using DOS function.
  23. DEMOPROC       PROC NEAR
  24.                MOV            EBX,OFFSET PMMSG
  25.                MOV            AH,02H
  26. MSGLOOP:       MOV            DL,CS:[EBX]    ;32-bit offset!!!!!
  27.                OR             DL,DL
  28.                JZ             EXIT
  29.                INT            21H            ;Print character with DOS
  30.                INC            EBX
  31.                JMP            MSGLOOP
  32. EXIT:          RET                           ;Go back to real or V86 mode
  33. PMMSG          DB  "In 32-bit protected mode!!!  "
  34.                DB  "Returning to real mode.",10,13,0
  35. DEMOPROC       ENDP
  36.  
  37. TSEG           ENDS
  38.                END
  39.